
package com.hlkj.pay.app.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import javax.validation.Valid;

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.framework.common.pojo.PageResult;
import com.hlkj.pay.dto.order.OrderReceiveDto;
import com.hlkj.pay.dto.order.OrderReceiveQueryDto;
import com.hlkj.pay.dto.order.PayOrderQueryDto;
import com.hlkj.pay.infrastructure.model.order.OrderReceiveDO;
import com.hlkj.pay.vo.openapi.order.resp.PayOrderSubmitApiResp;
import com.hlkj.pay.vo.order.req.ReceiveOrderParamReq;
import com.hlkj.pay.vo.order.req.ReceiveOrderSetReq;
import com.hlkj.pay.vo.order.req.ReceiveOrderUpdateReq;
import com.hlkj.pay.vo.order.resp.PayOrderDetailResp;

/**
 * @author HlpayTeam
 * @date 2024/10/09 13:50
 */
public interface IReceiveOrderAppService {

    PageResult<OrderReceiveDto> queryPage(OrderReceiveQueryDto receiveQueryDto);

    PageResult<PayOrderDetailResp> queryPayPage(PayOrderQueryDto payOrderQueryDto);

    CommonResult<PayOrderSubmitApiResp> submitReceiveOrder(@Valid ReceiveOrderParamReq paramReqParams);

    CommonResult<OrderReceiveDO> saveReceiveOrder(ReceiveOrderSetReq ReceiveOrderSetReq);

    CommonResult<OrderReceiveDto> detail(String code);

    CommonResult<String> link(String code);

    CommonResult<Void> updateReceiveOrder(ReceiveOrderUpdateReq ReceiveOrderSetReq);

    CommonResult<Void> updateStatus(ReceiveOrderUpdateReq receiveOrderUpdateReq);

    CommonResult<Void> syncStatus();

}
